package com.fml.easy;

/**
 * . 回文数
 * 给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。
 *
 * 回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。
 *
 * 例如，121 是回文，而 123 不是。10不是
 */
public class Demo03 {
    public static void main(String[] args) {
        int x = 121;

        System.out.println(isPalindrome(x));
    }
    public static boolean isPalindrome(int x) {
        String numStr = x + "";
        StringBuffer a = new StringBuffer(numStr);
        return a.reverse().toString().equals(numStr);
    }

    public static boolean isPalindrome1(int x) {
        //去掉 负数，10，等特殊情况
        if (x < 0 || x % 10 == 0 && x != 0) {
            return false;
        }
        //前后对应相同，得到x本身回文数,一位一位,x的最后一位即时回文数的第一位
        int revertNum = 0;
        while (x > revertNum) {
            revertNum = revertNum * 10 + x % 10;
            x /= 10;
        }
        //数字长度为奇数个时
        return x == revertNum || x == revertNum / 10;
    }
}
